什么是 java、javax、java EE、Jakarta 、Jakarta EE ?

# 什么是 java、javax、java EE、Jakarta 、Jakarta EE ?

以下是 Java 相关技术术语的详细解释及发展脉络:


# 一、核心概念定义

  1. Java
    • 指 Java 编程语言及其基础平台(Java SE,Standard Edition),包含语言规范、JVM(Java 虚拟机)和核心类库。
    • 示例:java.lang.String 属于 Java SE 的核心类。
  2. javax
    • Java 标准扩展包的命名空间前缀,最初用于 Java EE(企业版)的扩展 API,如 javax.servlet(Servlet API)和 javax.persistence(JPA)。
    • 注意‌:Jakarta EE 后,javax.* 逐步迁移为 jakarta.*
  3. ‌**Java EE(Java Platform, Enterprise Edition)**‌
    • 基于 Java SE 的企业级开发规范,提供 Servlet、JPA、EJB 等组件,用于构建分布式应用。
    • 历史名称:1999 年称为 J2EE(Java 2 EE),2006 年更名为 Java EE。
  4. Jakarta
    • Eclipse 基金会管理的开源项目品牌,承接原 Java EE 的技术生态。
    • 名称来源:印度尼西亚首都雅加达(Jakarta),与 Java 岛(爪哇岛)呼应。
  5. Jakarta EE
    • Java EE 的继任者,由 Eclipse 基金会维护,专注于云原生和企业级开发。
    • 核心变更:包路径从 javax.* 改为 jakarta.*(如 jakarta.servlet)。

# 二、历史演进与关系

时期 技术名称 管理方 关键变化
1999–2006 J2EE Sun Microsystems 首个企业版规范
2006–2017 Java EE Oracle 更名并持续迭代
2017 至今 Jakarta EE Eclipse 基金会 包路径迁移至 jakarta.*

# 三、常见混淆点

  1. Java EE vs Jakarta EE
    • 相同点‌:技术规范基本一致(如 Servlet、JPA)。
    • 不同点‌:Jakarta EE 采用新包路径,且开发流程更开放。
  2. javax 与 jakarta 的兼容性
    • Tomcat 10 或 Spring Boot 3 等新技术栈仅支持 jakarta.*,旧项目需手动迁移。

# 四、应用场景

  • 传统系统‌:Java EE(如银行遗留系统使用 javax.servlet)。
  • 现代开发‌:Jakarta EE(云原生应用推荐)。

如需进一步了解具体技术组件(如 Servlet、JPA,可提供更细化的解答。

上次更新时间: 5/20/2025, 3:41:16 PM